package com.gxan.dao;

import com.gxan.pojo.Human;

import java.sql.SQLException;
import java.util.List;

public interface HumanDao {
    /**
     * @param human
     * @return int
     * @throws SQLException
     */
    int saveHuman(Human human) throws SQLException;

    /**
     * 查询总记录数
     *
     * @return
     */
    Integer countHuman() throws SQLException;

    /**
     * 查询复核的总记录数
     *
     * @return
     */
    Integer reviewCountHuman() throws SQLException;

    /**
     * 根据姓名查询复核的总记录数
     *
     * @return
     */
    Integer reviewSearchCountHuman(String human_name) throws SQLException;

    /**
     * 表中所有的数据，封装到List
     *
     * @param param01
     * @param param02
     * @return
     */
    List<Human> queryHumanList(Integer param01, Integer param02) throws SQLException;

    /**
     * 表中审核中的所有的数据，封装到List
     *
     * @param param01
     * @param param02
     * @return
     */
    List<Human> reviewQueryHumanList(Integer param01, Integer param02) throws SQLException;

    /**
     * 根据姓名表中审核中的所有的数据，封装到List
     *
     * @param param01
     * @param param02
     * @return
     */
    List<Human> reviewQueryHumanList(Integer param01, Integer param02, String human_name) throws SQLException;

    /**
     * 修改档案信息
     *
     * @param human
     * @return int
     */
    int updateHuman(Human human) throws SQLException;

    /**
     * 根据员工id删除员工信息:
     * 不真正删除员工信息，而是把员工表中status
     * 值从1正常状态改为3删除状态
     *
     * @param human_id
     * @param statusDel
     * @return
     */
    int delHumanById(String human_id, Integer statusDel) throws SQLException;

    /**
     * 按照姓名搜索-查询总记录数
     *
     * @param human_name
     * @return
     */
    Integer countHuman(String human_name) throws SQLException;

    /**
     * 按照员工搜索-表中所有的数据，封装到List
     *
     * @param param01
     * @param param02
     * @param human_name
     * @return
     */
    List<Human> queryEmployeeList(Integer param01, Integer param02, String human_name) throws SQLException;

//    /**
//     * 根据human_id 修改档案状态
//     *
//     * @param human_id
//     * @return int
//     */
//    int toCheck(String human_id, Integer statusReviewing) throws SQLException;

    /**
     * 根据human_id 修改档案状态为审核通过
     *
     * @param human_id
     * @return int
     */
    int changeCheckStatus(String human_id, Integer statusReviewed) throws SQLException;
}
